package practice;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/*
    使用文件字符流文件复制的练习：一读以写
    思路：明确要复制的数据源：
         复制数据的目的地：

    文件复制的步骤：
        1.创建一个字节输入流对象，构造方法中绑定要读取的数据源
        2.创建一个字节输出流对象，构造方法中绑定要写入的目的地
        3.使用字节输入流对象中的read（）方法去读取文件
        4.使用字节输出流对象中的write（）方法把读取到的字节写入到目的地文件中
        5.释放资源:先释放字节输出流，再关闭字节输入流（写完一定读完）
 */
public class Practice2Main {
    public static void main(String[] args) throws IOException {
        long begin = System.currentTimeMillis();
        FileInputStream fis = new FileInputStream("C:\\Users\\Lenovo\\想法复制.txt");
        FileOutputStream fos = new FileOutputStream("E:\\idea\\IntelliJ IDEA 2020.3\\perject_idea\\20210325\\c.txt");
        //使用字节输入流对象中的read（）方法去读取文件
        //方法1：逐个字节复制
//        int len  = 0;
//        while ((len = fis.read()) != -1){
//            fos.write(len);
//        }

        //方法2：用数组字节复制(更快)
        byte[] bytes = new byte[1024];
        int len2 = 0;
        while ((len2 = fis.read(bytes)) != -1){
            fos.write(bytes,0,len2);
        }

        fos.close();
        fis.close();

        long end = System.currentTimeMillis();
        System.out.println(end-begin+"毫秒");
    }
}
